The present invention relates in general to improved information processing systems. In particular, the present invention relates to a method and system for moving windows on a display.
Early computers were controlled by batch operating systems. These computers had limited interaction with users of the system. An operator needed to load the job to be run and then send the output to a printer. With the advent of time-sharing operating systems, such as the IBM System 370, interactive computing became the norm. Time-sharing operating systems allowed many users to use the computer""s resources simultaneously, so that all users of the system appeared to have their own computer system. All users had their own terminal, which was connected to the central computer system. This terminal typically consisted of a display and a keyboard. To the user, this terminal appeared to be an interactive computer system in its own right.
With the advent of computer systems that allowed truly interactive computer applications came a proliferation of user interfaces. Some of these interfaces were command driven, others where menu driven, but they all only allowed the user to work on only one task or application from a given terminal at a time.
Today, the state-of-the-art for computer systems and user interfaces has advanced beyond the single-task interface. Inexpensive, personal computers and workstations with powerful graphics processors and multi-tasking operating systems have changed the way users interact with computer systems. With these operating systems, the user can simultaneously work on many tasks at once, each task being confined to its own display panel, called a window. This interface allows the presentation of multiple windows in potentially overlapping relationships on a display screen. The user can thus retain a window on the screen while temporarily superimposing another window entirely or partially overlapping the retained window. This enables users to divert their attention from a first window to one or more secondary windows for assistance or reference, so that overall user interaction can be improved. The processor that controls this operation must retain the information relating to the original window and any subsequent, overlaid windows. There may be many windows with active applications running at once. As the number of open windows becomes large and the screen becomes cluttered, it becomes more and more difficult for the user to find the desired window because it may be overlaid by several other windows.
In order to find the desired window, current systems allow the user to reduce overlying windows to icons (symbols that represent the windows) by clicking the mouse button while the mouse cursor is positioned on a minimize button. This method suffers from the disadvantage that when the window is reduced to an icon, the user cannot see the window contents. Many times when an application in a window is running, the user might wish to refer to the window contents. By seeing all or a portion of the window contents, the user has a better chance of determining when the application is complete or needs attention.
In an attempt to address these problems of minimization, some operating systems create a xe2x80x9ctask barxe2x80x9d, which contains icons for all running tasks regardless of whether the tasks are minimized, maximized, or take up some portion of the desktop. The task bar is always present, regardless of the amount of space that the windows consume on the remaining area of the desktop. When the user selects an icon in the task bar, the operating system brings that task to the foreground of the desktop. The task bar suffers from the problem that it is an all-or-nothing solution; that is, in order to determine the contents of the window, the user must bring the entire window to the foreground. Further, the user might not be able to determine which is the desired window by examining the icons in the task bar, and thus might repeatedly need to bring different windows to the foreground.
Another method of finding the desired window is for the user to use the mouse pointer to xe2x80x9cgrabxe2x80x9d overlying windows, xe2x80x9cdragxe2x80x9d them, and xe2x80x9cdropxe2x80x9d them to the side or partially off the screen. In this method, the user positions the mouse pointer in some portion of the window (such as the title bar) and clicks and holds a mouse button (the grabbing action). The window then moves with the mouse pointer (the dragging action). When the window is positioned in the desired area, the user releases the mouse button (the dropping action). Grabbing, dragging, and dropping take too much of the user""s time and divert the user""s attention from the primary work inside the desired window.
For the foregoing reasons, there is a need for a windowing interface that permits the user to quickly and easily find the window of interest amidst the clutter of the desktop.
The invention is a method, program product, and system for displaying windows. In the preferred embodiment, a controller displays windows on a display. At any one time, one of the windows can be in focus. Each of the windows has an original position and an original size on the display. The controller determines, for each window, an elapsed time since it was in focus, and changes the position and size of each window in proportion to its elapsed time. The controller shrinks each window that is not in focus and moves it away from its original position and toward the boundary of the desktop in proportion to the elapsed time since it was in focus. Thus, the windows that the user is using heavily tend to stay large and near their original position while windows that the user is using lightly tend to shrink and move toward the boundary of the screen.